以下是我将在文件导入时使用的示例单词
以下是业务规则:
,但如果只有空格(l.e East Chesterton)则无效( someword )
( someword )
是可选的( someword )
存在,则其最小长度为3,并且也允许使用空格。我在某种程度上使用以下表达式实现了这一目标:
^[a-zA-Z ]{1,}\([a-zA-Z ]{1,}\)$
现在我想确保这是正确的表达方式。有没有办法检查自动化以检查多个组合以验证我的表达?
我如何实现可选部分(第4点),它是否通过(somedata)检查第一部分。
还要在'()'
中提取数据\((.*?)\)
答案 0 :(得分:2)
我想你差不多了。我试了一下。这符合您的所有要求吗?
^[a-zA-Z\s]{3,}(\([a-zA-Z\s]{3,}\))?$
https://regex101.com/r/yE9lB0/2
我把第二部分放在括号之间并在最后添加一个问号:(myoptionalexpression)?
答案 1 :(得分:0)
我看了一下这里发布的答案。
^[a-zA-Z\s]{3,}(\([a-zA-Z\s]{3,}\))?$
这会与
发生冲突只有空格已匹配。
除此之外,描述'字符'可能有点模糊。因此,我假设单词字符\w
是你的意思。 (在C sharp \w
中也应包含像ü
这样的unicode字符。请以Münster (Germany)
为例。
新的正则表达式如下所示:
^\s*(?:\w{3,}\s*)+(?:\(\s*(?:\w{3,}\s*)+\))?\s*$
这里的例子: https://regex101.com/r/gS7kG8/3
请注意,regex101页面适用于php,python和js regex,在C#的情况下它不会给出确切的结果(例如,php中的\w
显然与unicode不匹配)