我正在尝试检查每一行是否都等于"test“。当我尝试运行以下代码时,我希望结果为真,因为每一行都是"test“。然而,结果是错误的。
// Expected outcome:
// "test\ntest\ntest" - should match
// "test\nfoo\ntest" - should not match
// "test\ntesttest\ntest" - should not match
Pattern pattern = Pattern.compile("^test$", Patte
我试图用代码注释中显示的语法将“b(Aa)a)b$”翻译回来。当我尝试运行它时,它会给出以下错误。这似乎是字符串拆分方法的一个错误,但我不知道如何修复它。有什么建议吗?谢谢。
跑:
B(A)a)b
线程"main“java.util.regex.PatternSyntaxException中的异常:不匹配的关闭')‘在索引3附近
a)
^在java.util.regex.Pattern.error(Pattern.java:1955) at java.util.regex.Pattern.compile(Pattern.java:1700) at java.util.rege
我想检查输入的特定单词是否在字符串中。我使用了以下代码:
import java.util.*;
import java.io.*;
public class StringTest {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String s1;
s1 = s.next();
String s2 = "this is an accomplishment";
if (s2.con
我试图提取title元素中的文本,而忽略其他所有内容。
我看过这些文章,但它们似乎没有帮助:\
主要的问题是,当我试图修改自己的代码时,我不能理解响应者在说什么。
这是我通过阅读中的Java API而得到的结果。
<title>(.*?)</title>
下面是我返回标题的代码。
String title = null;
Matcher match = Pattern.compile("[<title>](.*?)[</title>]").matcher(this.webPage);
try{
title = mat
我正在使用Jenkins 插件,试图匹配构建日志中的多行模式。我希望在日志中匹配的文本是:
Total time: 1 minute 45 seconds
Build step 'Invoke Ant' marked build as failure
我使用的正则表达式是:
(?s)Total(.*)failure
看起来很简单,但这与上面的代码行不匹配。
我正在使用的另一个例子是:
[java] ACTION REQUIRED
[java]
[java] I want to match this line
[java] as well
我的理解是,Java的正则表达式实现是基于Perl的,然而,在下面的示例中,如果我用相同的字符串执行相同的正则表达式,Java和Perl将返回不同的结果。
下面是Java示例:
public class RegexTest {
public static void main( String args[] ) {
String sentence = "This is a test of regular expressions.";
System.out.println( sentence.matches( "\\w" ) ?
在NFA中,很容易使所有以前的非最终状态都接受使其匹配给定语言的所有子字符串的语言。
在Java regex引擎中,是否有一种方法可以确定字符串是否是与给定正则表达式匹配的字符串的起始子字符串?
表达式regexX ~“任意开始”,regexA =任何正常正则表达式
生成的表达式"regexXregexA“匹配”regexA“所有匹配项的所有起始子字符串:
示例:
regexA = a*b, matches "ab" and not "a"
"regexXa*b", matches "a" because it is
我有一个java正则表达式来获取一个(数字空间文本)值,但是当我有一个新的行时,这个值没有分组,示例
正则表达式(\d{14}\s.*\n)
值:
59105999000321 My value start
with new line number
12105999000343 AAAAAasasas asdasdasd
32105999000323 asdasxasxasx asdasd
中的分组结果为:
Match 1
Full match 0-29 `59105999000321 My value start`
Group 1. 0-29 `5910599900032
编辑:虽然我已经用java标签标记了这个问题,但我不想要一个需要java代码的解决方案。如果可能的话,我只是希望该模式与Java的regex实现兼容(不幸的是,这与PCRE不完全兼容)。我想要的只是一个生成我想要的匹配的正则表达式。
假设我有这个字符串:
foo bar foo bar # foo bar foo bar
我希望匹配"foo“的实例,但前提是它们不在任何"#”符号之后(如果存在)。换句话说,我想要这样的结果:
foo bar foo bar # foo bar foo bar
^^^ ^^^
我试着像这样使用负面回顾:
(?<!#.*)\bfoo\
我在网上学习一个Java正则表达式教程,对一个小程序感到困惑。
// String to be scanned to find the pattern.
String line = "This order was places for QT3000! OK?";
String pattern = "(.*)(\\d+)(.*)";
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
// Now create matcher object.
Matche
我正在尝试为Java编写一个正则表达式,用于匹配没有两个(或更多)前导'-‘字符的分号。
我只能得到相反的结果:至少有两个前导'-‘字符的分号。
([\-]{2,}.*?;.*)
但我需要像这样的东西
([^([\-]{2,})])*?;.*
不知何故,我无法表达“至少不能有两个字符”。
下面是我需要用表达式计算的一些例子:
; -- a : should match
-- a ; : should not match
-- ; : should not match
--; : shoul
我正在尝试在Java字符串文字中获得类似的结果。如果有两个,则是\,否则它将“转义”后面的任何内容。所以如果有一个分隔符跟在一个释放字符后面,它就不算数了。但是两个释放字符解析为释放字符文字,所以下面的分隔符应该被认为是分隔符。因此,如果在分隔符之前有奇数个释放字符,它将被忽略。对于0或偶数,它是一个分隔符。因此,在下面的代码示例中:
?: <- : is not a delimiter
??: <- : is a delimiter
???: <- : is not a delimiter
????: <- : is a delimiter
下面的示例代码显示了不起作
在阅读完之后,我很快设置了一个Delphi程序来检查PCRE是如何处理这种情况的。有趣的是,结果与java中的情况不同:
program Project1;
{$APPTYPE CONSOLE}
uses
System.RegularExpressions;
var
SArr: TArray<string>;
S: string;
begin
SArr := TRegex.Split('abcdefghij', '(?<=\G..)',[]);
for S in SArr do
begin
WriteLn(S);