Попробуйте перефразировать вопрос в более срочных выражениях. Вместо того, чтобы «разрешить только одну тире, и это не может быть в начале», можно сказать, «начало строки, за которой следует, по крайней мере, одна не-тире, за которой следует одна тире, за которой следует по крайней мере одна не-тире, а затем конец строки. "
- начала струны: `^
- по крайней мере, один не-тир:
[^-]+
- следует одна тира:
-
- следует, по крайней мере, один не тир:
[^-]+
- следует конец строки:
$
Поместите все это вместе, и там вы g о. Если вы используете это в контексте, который сопоставляется с полной строкой (а не только с какой-либо подстрокой внутри нее), вам не нужны привязки, хотя может быть полезно их поместить в любом случае, если вы позже используете это регулярное выражение в контексте подстроки сопоставления и забудьте добавить их обратно.
Не подходит тире приемлемого образца? Я бы так предположил, учитывая, что моя фамилия не содержит тире. – dlev
** Это не * тире ***; это U + 002D, символ HYPHEN-MINUS! Не забывайте U + 2010 HYPHEN, U + 2011 НЕРАСПРОСТРАНЯЮЩИЙ HYPHEN, U + 2012 РИСУНОК DASH, U + 2013 EN DASH, U + 2014 EM DASH, U + 2015 ГОРИЗОНТАЛЬНЫЙ БАР, U + 2053 SWUNG DASH, U + 207B SUPERSCRIPT MINUS, U + 208B SUBSCRIPT MINUS, U + 2212 MINUS SIGN, U + 2E3A TWO-EM DASH и U + 2E3B THREE-EM DASH - просто чтобы назвать несколько. Их больше. – tchrist