#javascript #regex #apex
Вопрос:
Я ищу регулярное выражение, чтобы не допускать более одного пробела между словами, и я получаю это:
'^[a-zA-Z0-9] (?: [a-zA-Z0-9] )*
Это работает, но я понимаю, что это не прием специальных символов, поэтому я реализовал:
'^[a-zA-Z0-9!@#$amp;?!*%()\-`. ,/"] (?: [a-zA-Z0-9!@#$amp;?!*%()\-`. ,/"] )*
Но это заставляет меня задуматься, есть ли у него другая формула, так что я могу принимать все буквы, цифры и все специальные символы без необходимости писать все специальные символы.
Пример: "Тестовый тест" Если в нем больше одного интервала между такими словами, регулярное выражение должно это уловить.
Комментарии:
1. Вы согласны с более чем одним пробелом, которого нет между словами? Похоже, что самым простым способом справиться с этим было бы уменьшить все пробелы 1 до 1.
2. Каковы некоторые примеры пробелов между словами? Спецификация здесь кажется расплывчатой. Похоже, это
/ /.test(foo)
должно сработать, чтобы определить, есть ли где-нибудь два последовательных пробела, хотя у нас есть теги Java, JavaScript и apex, поэтому я не уверен, на каком языке мы находимся.3. Спасибо за ответ, я не использую язык, я использую правило проверки из Salesforce, поэтому для этого мне нужно использовать регулярное выражение
Ответ №1:
Если мое регулярное выражение верно, вы должны быть в состоянии использовать
S S
"S " - это любой символ, который не является пробелом. Все символы и буквы включены в "S", и у нас есть " " для любого 1 или более из них. Затем с одним пробелом между ними он будет соответствовать только тем словам, между которыми есть один пробел. Однако будьте осторожны, если вы применяете это к большому файлу. Это не будет проверять каждую пару слов. Если два слова совпадают только с одним пробелом, то они будут извлечены, и второе слово не будет проверено на соответствие второму;
one two three
В этом случае только one two
было бы схвачено, и три никогда не были бы проверены двумя, потому что мы нашли совпадение. Более простой подход к тому, чтобы убедиться, что в тексте нет сомнительных пробелов, может заключаться в том, чтобы конкретно найти все сомнительные пробелы в вашем тексте и обращаться с ними так, как вы должны.
Это работает, но я понимаю, что это не прием специальных символов, поэтому я реализовал:
Но это заставляет меня задуматься, есть ли у него другая формула, так что я могу принимать все буквы, цифры и все специальные символы без необходимости писать все специальные символы.
Пример: "Тестовый тест" Если в нем больше одного интервала между такими словами, регулярное выражение должно это уловить.
Комментарии:
1. Вы согласны с более чем одним пробелом, которого нет между словами? Похоже, что самым простым способом справиться с этим было бы уменьшить все пробелы 1 до 1.
2. Каковы некоторые примеры пробелов между словами? Спецификация здесь кажется расплывчатой. Похоже, это
/ /.test(foo)
должно сработать, чтобы определить, есть ли где-нибудь два последовательных пробела, хотя у нас есть теги Java, JavaScript и apex, поэтому я не уверен, на каком языке мы находимся.
3. Спасибо за ответ, я не использую язык, я использую правило проверки из Salesforce, поэтому для этого мне нужно использовать регулярное выражение
Ответ №1:
Если мое регулярное выражение верно, вы должны быть в состоянии использовать
S S
"S " - это любой символ, который не является пробелом. Все символы и буквы включены в "S", и у нас есть " " для любого 1 или более из них. Затем с одним пробелом между ними он будет соответствовать только тем словам, между которыми есть один пробел. Однако будьте осторожны, если вы применяете это к большому файлу. Это не будет проверять каждую пару слов. Если два слова совпадают только с одним пробелом, то они будут извлечены, и второе слово не будет проверено на соответствие второму;
В этом случае только one two
было бы схвачено, и три никогда не были бы проверены двумя, потому что мы нашли совпадение. Более простой подход к тому, чтобы убедиться, что в тексте нет сомнительных пробелов, может заключаться в том, чтобы конкретно найти все сомнительные пробелы в вашем тексте и обращаться с ними так, как вы должны.
Но это заставляет меня задуматься, есть ли у него другая формула, так что я могу принимать все буквы, цифры и все специальные символы без необходимости писать все специальные символы.
Пример: «Тестовый тест» Если в нем больше одного интервала между такими словами, регулярное выражение должно это уловить.
Комментарии:
1. Вы согласны с более чем одним пробелом, которого нет между словами? Похоже, что самым простым способом справиться с этим было бы уменьшить все пробелы 1 до 1.
2. Каковы некоторые примеры пробелов между словами? Спецификация здесь кажется расплывчатой. Похоже, это
/ /.test(foo)
должно сработать, чтобы определить, есть ли где-нибудь два последовательных пробела, хотя у нас есть теги Java, JavaScript и apex, поэтому я не уверен, на каком языке мы находимся.3. Спасибо за ответ, я не использую язык, я использую правило проверки из Salesforce, поэтому для этого мне нужно использовать регулярное выражение
Ответ №1:
Если мое регулярное выражение верно, вы должны быть в состоянии использовать
S S
«S » — это любой символ, который не является пробелом. Все символы и буквы включены в «S», и у нас есть » » для любого 1 или более из них. Затем с одним пробелом между ними он будет соответствовать только тем словам, между которыми есть один пробел. Однако будьте осторожны, если вы применяете это к большому файлу. Это не будет проверять каждую пару слов. Если два слова совпадают только с одним пробелом, то они будут извлечены, и второе слово не будет проверено на соответствие второму;
В этом случае только one two
было бы схвачено, и три никогда не были бы проверены двумя, потому что мы нашли совпадение. Более простой подход к тому, чтобы убедиться, что в тексте нет сомнительных пробелов, может заключаться в том, чтобы конкретно найти все сомнительные пробелы в вашем тексте и обращаться с ними так, как вы должны.
Это работает, но я понимаю, что это не прием специальных символов, поэтому я реализовал:
Но это заставляет меня задуматься, есть ли у него другая формула, так что я могу принимать все буквы, цифры и все специальные символы без необходимости писать все специальные символы.
Пример: «Тестовый тест» Если в нем больше одного интервала между такими словами, регулярное выражение должно это уловить.
Комментарии:
1. Вы согласны с более чем одним пробелом, которого нет между словами? Похоже, что самым простым способом справиться с этим было бы уменьшить все пробелы 1 до 1.
2. Каковы некоторые примеры пробелов между словами? Спецификация здесь кажется расплывчатой. Похоже, это
/ /.test(foo)
должно сработать, чтобы определить, есть ли где-нибудь два последовательных пробела, хотя у нас есть теги Java, JavaScript и apex, поэтому я не уверен, на каком языке мы находимся.3. Спасибо за ответ, я не использую язык, я использую правило проверки из Salesforce, поэтому для этого мне нужно использовать регулярное выражение
Ответ №1:
Если мое регулярное выражение верно, вы должны быть в состоянии использовать
S S
«S » — это любой символ, который не является пробелом. Все символы и буквы включены в «S», и у нас есть » » для любого 1 или более из них. Затем с одним пробелом между ними он будет соответствовать только тем словам, между которыми есть один пробел. Однако будьте осторожны, если вы применяете это к большому файлу. Это не будет проверять каждую пару слов. Если два слова совпадают только с одним пробелом, то они будут извлечены, и второе слово не будет проверено на соответствие второму;
В этом случае только one two
было бы схвачено, и три никогда не были бы проверены двумя, потому что мы нашли совпадение. Более простой подход к тому, чтобы убедиться, что в тексте нет сомнительных пробелов, может заключаться в том, чтобы конкретно найти все сомнительные пробелы в вашем тексте и обращаться с ними так, как вы должны.