Java中Regexp查找所需的建议
我在我的项目中大量使用regexp。我需要一些关于测试字符串的建议: 1 string 3.33 string 1 string -3.33 第2行与此正则表达式匹配,但第3行不匹配 注意:我确实关心行的开头或结尾。因此,上面标记的测试行具有完美的空白Java中Regexp查找所需的建议,java,regex,Java,Regex,我在我的项目中大量使用regexp。我需要一些关于测试字符串的建议: 1 string 3.33 string 1 string -3.33 第2行与此正则表达式匹配,但第3行不匹配 注意:我确实关心行的开头或结尾。因此,上面标记的测试行具有完美的空白 我使用Java作为我的编程语言 你是否逐行测试了文本 然后您可以使用re:\d+\.\d+$匹配您不需要的文本。如果match()返回false,则执行该行 嗯,就
我使用Java作为我的编程语言 你是否逐行测试了文本 然后您可以使用re:
\d+\.\d+$
匹配您不需要的文本。如果match()返回false,则执行该行
嗯,就像格雷普-v
如果使用grep进行测试:
kent$ cat a
1 string 3.33
string
1
string -3.33
kent$ grep -Pv '\d+\.\d+$' a
string
1
你有逐行测试这篇课文吗 然后您可以使用re:
\d+\.\d+$
匹配您不需要的文本。如果match()返回false,则执行该行
嗯,就像格雷普-v
如果使用grep进行测试:
kent$ cat a
1 string 3.33
string
1
string -3.33
kent$ grep -Pv '\d+\.\d+$' a
string
1
这是一个很好的例子。字符类正好匹配方括号内描述的字符集中的一个字符。你的相当于:
[^!()+.\d]
开头的^
反转集合,并且\d
匹配一个数字,就像它在字符类之外一样,但其余字符按字面匹配。换句话说,您告诉它匹配任何一个不是的字符代码>,(
,)
,+
,
,或数字
看起来您试图使用消极的前瞻,这是一种有效的方法。如果您只关心行末尾的美元金额,您可以这样做:
^(?!.*\d+\.\d+$).*$
先行查找尝试匹配行末尾的\d+\.\d+
。如果成功,则整个匹配将失败。否则,*$
将消耗整行,因此您可以使用Matcher的group()
方法检索它
这假设您一次只对一行应用正则表达式。如果要在较大的文本中查找匹配行,则应指定多行模式,您可以这样做:
(?m)^(?!.*\d+\.\d+$).*$
这是一个很好的例子。字符类正好匹配方括号内描述的字符集中的一个字符。你的相当于:
[^!()+.\d]
开头的^
反转集合,并且\d
匹配一个数字,就像它在字符类之外一样,但其余字符按字面匹配。换句话说,您告诉它匹配任何一个不是的字符代码>,(
,)
,+
,
,或数字
看起来您试图使用消极的前瞻,这是一种有效的方法。如果您只关心行末尾的美元金额,您可以这样做:
^(?!.*\d+\.\d+$).*$
先行查找尝试匹配行末尾的\d+\.\d+
。如果成功,则整个匹配将失败。否则,*$
将消耗整行,因此您可以使用Matcher的group()
方法检索它
这假设您一次只对一行应用正则表达式。如果要在较大的文本中查找匹配行,则应指定多行模式,您可以这样做:
(?m)^(?!.*\d+\.\d+$).*$
我认为如果您将示例输入缩进四个空格,以便StackOverflow保留格式,这会有所帮助。这将有助于使你的问题更清楚。另外,你可以试着玩一个网站,比如我或我的第二本,请改进示例文本。我正在尝试放缩进。请允许我找个时间。以下是我能解释的关于缩进和测试字符串的最好解释:测试字符串1:1字符串3.33测试字符串2:[空格]字符串测试字符串3:[空格]1测试字符串4:[空格]字符串-3.33我想如果您将示例输入缩进四个空格,以便StackOverflow保留格式,这会有所帮助。这将有助于使你的问题更清楚。另外,你可以试着玩一个网站,比如我或我的第二本,请改进示例文本。我正在尝试放缩进。请允许我找个时间。以下是我能解释的关于缩进和测试字符串的最好解释:测试字符串1:1字符串3.33测试字符串2:[空格]字符串测试字符串3:[空格]1测试字符串4:[空格]字符串-3.33Kent,实际上这是一个大程序的一部分。我不能按你建议的方式做这件事。谢谢你的建议。肯特,实际上这是一个大项目的一部分。我不能按你建议的方式做这件事。谢谢你的建议。我想,这似乎是个好主意。我一定会试试的。我喜欢你的解释。我会记住这一点,以便进一步使用。谢谢你,艾伦,这个正则表达式正是我想要的。我学到了一些更好的消极前瞻。谢谢你的建议。我想,这似乎是个好主意。我一定会试试的。我喜欢你的解释。我会记住这一点,以便进一步使用。谢谢你,艾伦,这个正则表达式正是我想要的。我学到了一些更好的消极前瞻。谢谢你的建议。