試試這個
(?im)^([a-z_][\w\.\-]+)(?![\.\-])\b
UPDATE 1
(?im)^([a-z_](?:[\.\-]\w|\w)+(?![\.\-]))$
UPDATE 2
(?im)^([a-z_](?:\.\-\w|\-\.\w|\-\w|\.\w|\w)+)$
說明
<!--
(?im)^([a-z_](?:\.\-\w|\-\.\w|\-\w|\.\w|\w)+)$
Match the remainder of the regex with the options: case insensitive (i);^and $ match at line breaks (m) «(?im)»
Assert position at the beginning of a line (at beginning of the string or after a line break character) «^»
Match the regular expression below and capture its match into backreference number 1 «([a-z_](?:\.\-\w|\-\.\w|\-\w|\.\w|\w)+)»
Match a single character present in the list below «[a-z_]»
A character in the range between 「a」 and 「z」 «a-z»
The character 「_」 «_»
Match the regular expression below «(?:\.\-\w|\-\.\w|\-\w|\.\w|\w)+»
Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
Match either the regular expression below (attempting the next alternative only if this one fails) «\.\-\w»
Match the character 「.」 literally «\.»
Match the character 「-」 literally «\-»
Match a single character that is a 「word character」 (letters, digits, and underscores) «\w»
Or match regular expression number 2 below (attempting the next alternative only if this one fails) «\-\.\w»
Match the character 「-」 literally «\-»
Match the character 「.」 literally «\.»
Match a single character that is a 「word character」 (letters, digits, and underscores) «\w»
Or match regular expression number 3 below (attempting the next alternative only if this one fails) «\-\w»
Match the character 「-」 literally «\-»
Match a single character that is a 「word character」 (letters, digits, and underscores) «\w»
Or match regular expression number 4 below (attempting the next alternative only if this one fails) «\.\w»
Match the character 「.」 literally «\.»
Match a single character that is a 「word character」 (letters, digits, and underscores) «\w»
Or match regular expression number 5 below (the entire group fails if this one fails to match) «\w»
Match a single character that is a 「word character」 (letters, digits, and underscores) «\w»
Assert position at the end of a line (at the end of the string or before a line break character) «$»
-->
你可以測試它here。
有什麼問題嗎? –
編輯示例,使其更易於理解。是否需要進一步解釋?請讓我知道,我會很樂意進一步澄清。 – banskt
爲什麼'pro..ductname'不匹配?點在中間? –