我在Java 1.6中使用Java正则表达式(尤其是解析数字输出)并且找不到\b("单词边界")的精确定义.我假设这-12将是一个"整数字"(匹配 \b\-?\d+\b),但似乎这不起作用.我很想知道匹配空格分隔数字的方法.
例:
Pattern pattern = Pattern.compile("\\s*\\b\\-?\\d+\\s*");
String plus = " 12 ";
System.out.println(""+pattern.matcher(plus).matches());
String minus = " -12 ";
System.out.println(""+pattern.matcher(minus).matches());
pattern = Pattern.compile("\\s*\\-?\\d+\\s*");
System.out.println(""+pattern.matcher(minus).matches());
Run Code Online (Sandbox Code Playgroud)
返回:
true
false
true
Run Code Online (Sandbox Code Playgroud) 如果我有很多匹配,例如在多行模式下,我想用匹配的一部分替换它们以及增量的计数器号.
我想知道任何正则表达式的味道是否有这样的变量.我找不到一个,但我似乎记得那样存在......
我不是在谈论可以使用回调替换的脚本语言.这是关于能够在RegexBuddy,sublime text,gskinner.com/RegExr等工具中实现这一点,就像你可以用\ 1或$ 1引用捕获的子串一样.
基本上我需要一个正则表达式,如果字符串是一个单词(\ w +),它将返回true,如果它是单词word1或word2则除外.
我尝试了很多东西,但不要以为我甚至都很接近.救命!
我有一个text,我需要匹配除给定单词之外的所有文本部分regexp
例如,如果文本是' Something went wrong and I could not do anything '并且给定的单词是'and','not'那么结果必须是['Something went wrong', 'I could', 'do anything']
请不要建议我使用string.split()orstring.replace()等。我知道有几种方法可以使用内置方法来做到这一点。我想知道是否有一个正则表达式可以做到这一点,当我执行时text.match(/regexp/g)
请注意,正则表达式必须至少在不低于当前一比三的 Chrome、Firefox 和 Safari 版本中工作!在提出这个问题时,实际版本分别是 100.0、98.0.2 和 15.3。例如,您不能在 Safari 中使用Lookbehind功能
请在回答我的问题之前,访问https://regexr.com/并检查您的答案!您的正则表达式应突出显示句子的所有部分,包括需要部分的单词之间的空格以及需要部分周围的空格(给定的单词除外)
在问这个问题之前,我尝试自己进行搜索,但此链接对我没有帮助。我还尝试了不被接受的答案: