一系列文本的正则表达式

时间:2016-06-18 14:41:53

标签: javascript regex

我已经使用Google搜索组织名称的RegExp,但我没有找到任何结果。

以下是条件:

  1. 不应只接受特殊字符或仅接受数字字符。
  2. 它应该是这样的:字母+特殊字符(如果有的话)(可选)+数字(可选)。
  3. 我写了以下正则表达式:

    <?xml version="1.0" encoding="utf-8"?>
    <TableLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:padding="10dp"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <TableRow>
    
            <TextView
                android:textSize="20sp"
                android:textStyle="bold"
                android:padding="5dp"
                android:id="@+id/posicao"
                android:layout_width="50dp"
                android:layout_height="50dp" />
    
    
            <TextView
                android:textStyle="italic"
                android:textSize="20sp"
                android:padding="5dp"
                android:id="@+id/trechos"
                android:layout_width="match_parent"
                android:layout_height="50dp" />
    
        </TableRow>
    
    </TableLayout>
    

    以上内容不适用于组织名称“ I-Tech software pvt ltd ”。请建议一个更好的正则表达式。

2 个答案:

答案 0 :(得分:0)

那是因为I-Tech software pvt ltd与你的正则表达式不匹配。 I-Tech software pvt ltd中的空格之间有符号,但正则表达式不允许这样做。

我认为您正在寻找的解决方案可能是这样的:

/^([a-zA-Z][-\w!@\s]*)$/

我没有测试过这个,但我希望你明白这个想法。

答案 1 :(得分:-1)

您可以使用前瞻断言作为您尝试匹配的字符串中的条件:

/^(?=(?:\w*)[A-Za-z]+)(?=(?:\w*)[!@_-]+)(?=(?:\w*)\d*).+$/

(?=(?:\w*)[A-Za-z]+)是第一个预测,要求匹配应包含至少一个字母,换句话说,就像你声明&#34;不接受特殊字符或仅接受数字字符。&#34; < / p>

(?=(?:\w*)[!@_-]+)是第二个前瞻,声明应该有0个或更多特殊字符。我不认为这是必要的,因为在之前的预测中,它至少需要一个字母。

(?=(?:\w*)\d*)是第三个预测,说明应该有零个或多个数字。同样,可能没有必要,但要在你的问题中说明你的要求。

最后,实际匹配的字符串是.+,这意味着您正在测试的字段中必须至少存在一个字符。 ^$字符表示检查整个字符串。希望有所帮助。