我需要幫助找到一個允許大多數字串的正則運算式,除了:
- 如果字串只包含空格
- 如果字串包含
:或*
我想拒絕以下字串:
"hello:world""hello*world"" "(只是一個空格)
但以下字串將通過:
"hello world""hello"
到目前為止,我可以完成我想要的……有兩種模式。
[^:*]*拒絕 2 個特殊字符.*\S.*拒絕任何只有空格的字串
我不確定如何將這兩種模式組合成一個......
我將結合 Java 使用正則運算式模式。
uj5u.com熱心網友回復:
如何將兩種模式結合使用該matches方法的示例:
"[^:*]*[^:*\\s][^:*]*"
[^\s]相當于\S.
uj5u.com熱心網友回復:
您可以使用負面前瞻:
^(?!\s*$)[^:*] $
^- 字串錨的開始(?!\s*$)否定前瞻拒絕只有空白的字串[^:*]- 任何字符中的一個或多個,除了:和*$- 字串錨的結尾
演示
uj5u.com熱心網友回復:
您可以使用matches雙反斜杠匹配整個字串:
\\s*[^\\s:*][^:*]*
解釋
\s*匹配可選的空白字符[^\s:*]:匹配除and以外的非空白字符*[^:*]*匹配除:and之外的可選字符*
請參閱正則運算式演示。
如果\s您不想交叉匹配換行符,也可以匹配換行符:
\\h*[^\\s:*][^\\r\\n:*]*
解釋
\h*匹配可選的水平空白字符[^\s:*]:匹配除and以外的非空白字符*[^\\r\\n:*]*:匹配和*或換行符以外的可選字符
請參閱另一個正則運算式演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/533761.html
標籤:爪哇正则表达式
下一篇:如何在R中查找包含子字串的字串
