Regex الذي يطابق قضية الجمل والمساء
-
21-09-2019 - |
سؤال
أنا على وشك كتابة محلل باللغة التي من المفترض أن يكون لها قواعد نزيهة صارمة حول تسمية الأنواع والمتغيرات وما شابه. على سبيل المثال جميع الفئات يجب كن pascalcase ، وجميع أسماء المتغيرات/المعلمات ومعرفات أخرى يجب كن كاميل.
علي سبيل المثال HTMLParser
غير مسموح به ويجب تسميته HtmlParser
. أي أفكار ل regexp يمكن أن تتناسب مع شيء هو pascalcase ، ولكن ليس لديها رسالتين في رأس المال؟
المحلول
Camelcase:
^[a-z]+(?:[A-Z][a-z]+)*$
Pascalcase:
^[A-Z][a-z]+(?:[A-Z][a-z]+)*$
نصائح أخرى
/([A-Z][a-z]+)*[A-Z][a-z]*/
لكن يجب أن أقول إن خيار التسمية الخاص بك ينتن ، وينبغي السماح بـ htmlparser وفضله.
لا أعتقد أن العناصر المدرجة يمكن أن تبدأ بالأرقام (اعتقدت أنني قرأتها في مكان ما ، لذا خذها مع حبة من الملح) ، لذا فإن أفضل حالة ستكون مثل روجر بات مع بعض التعديلات البسيطة (في رأيي)
/([A-Z][a-z0-9]+)*[A-Z][a-z0-9]*/
يجب أن يكون شيئًا مثل ، ابحث عن خطاب رأسمالي ، ثم حالة أو رقم واحد على الأقل ، أو أكثر ، وكذلك يبدو أنه يتعامل مع خطاب رأسمالي حيث يبدو أنه مطلوب ، لكن الرسائل الإضافية اختيارية.
حظا طيبا وفقك الله
^[A-Z][a-z]*([A-Z][a-z]*)
هذا يجب أن يعمل من أجل:
- يجلعه سهلا
- رائع
- و أنا
هذه الأنواع من patters.