Java “*字;
有没有Regex大师?我需要一个符合以下条件的Java正则表达式: "RANDOMSTUFF SPECIFICWORD" “随机词” 包括引号。 所以我需要 to match the first quote, RANDOMSTUFF (any number of words with spaces between preceding SPECIFICWORD) SPECIFICWORD (a specific word which I won't specify here.) and the ending quote. 要匹配第一个报价,Java “*字;,java,regex,words,Java,Regex,Words,有没有Regex大师?我需要一个符合以下条件的Java正则表达式: "RANDOMSTUFF SPECIFICWORD" “随机词” 包括引号。 所以我需要 to match the first quote, RANDOMSTUFF (any number of words with spaces between preceding SPECIFICWORD) SPECIFICWORD (a specific word which I won't specify here.) and the e
RANDOMSTUFF(前面特定单词之间有空格的任意数量的单词) SPECIFICWORD(我在这里不指定的特定单词。) 最后一句话。 我不想匹配以下内容: RANDOMSTUFF SPECIFICWORD "RANDOMSTUFF NOTTHESPECIFICWORD" "RANDOMSTUFF SPECIFICWORD MORERANDOMSTUFF" 随机词 “随机填充而非特定单词” “RANDOMSTUFF特定单词更多RANDOMSTUFF”
\”*\ssspecificword\”
如果您不想在两者之间使用引号,请使用\“[^”]*\ssspecificWord\”
匹配任何字符*
表示前面字符的0个或多个(在本例中,任何字符的0个或多个)\s
匹配任何空白字符SPECIFICWORD
将被视为字符串文字,假设没有特殊字符(如果有,则转义)\“
与报价匹配[^”]
表示除引号外的任何字符(使其成为“除”字符的是^
)
此外,正则表达式也很有用。正则表达式是强大的表达式,几乎适用于任何语言,因此熟悉使用它们将是一件好事
编辑:
正如其他几张海报所指出的,只有在整行匹配的情况下,在开头添加^
,在结尾添加$
,才会匹配
^
匹配行的开头$
匹配行尾^.*\s+SPECIFICWORD“$
“^”匹配“从行的开头”
*匹配任何内容
\s+匹配“任意数量的空格,但至少有一些”
SPECIFICWORD”是字符串文字
$表示“这是该行的结尾”
请注意,^和$并不总是以“行”为基础的;大多数语言允许您指定“多行”模式,以使它们匹配“字符串开头/字符串结尾”,而不是一次只匹配一行。请尝试:
\“[\w\s]*SPECIFICWORD\”
工作原理如下:
\”
匹配期初报价
[\w\s]*
匹配以下集合中的零个或多个字符:
([a-zA-Z_0-9]
部分)\w
([\t\n\x0B\f\r]
部分)\s
SPECIFICWORD
与SPECIFICWORD
\“
匹配结束引号此字符串是逐行匹配还是在文本中找到?如果是,您可以添加锚定以确保它与字符串匹配
^(\".*\sSPECIFICWPRD\")$
也就是说,在行的开头,查找双引号,后跟零个或多个随机字符,后跟一个空格,后跟特定单词,然后在字符串的末尾查找双引号
^(\".*\sSPECIFICWPRD\")$
此外,还有一些优秀的工具用于设计正则表达式模式并实时查看它们的匹配情况
以下是几个例子:
成功了!谢谢!我现在接受你的回答,但显然我还要再等7分钟。不用担心。很高兴我能帮忙!快乐编码:)这不允许多个单词,只允许一个单词(长度>=1)后跟一个或多个空格字符,后跟特定单词。如果将
\w+\s+
更改为[\w\s]+
,这就可以了,尽管*
可能比+
更好,因为op没有指定必须有前面的单词。但是op不希望正则表达式匹配多个单词。“前面特定单词之间有空格的任意数量的单词”